/** @brief Implementación de la clase Archivo
 * @file   Archivo.cpp
 */

#include "Archivo.h"
#include "Usuario.h"

/**
 * @brief Constructor por defecto
 * @param nombre string Nombre del archivo
 * @param ruta string 
 * @param fecha string Fecha en la que es creada
 * @param size float Tamaña del archivo
 * @param extension string Extensión que va a tener
 * @param _usuario Usuario* Puntero al usuario propietario del archivo
 * @param _grupo Grupo* Puntero al grupo al que pertenece 
 * @param _permUsu int Permiso del propietario
 * @param _permGrp int Permiso del grupo
 * @param _permOtros int Permiso de otros
 */
Archivo::Archivo(string nombre, string ruta, string fecha, float size, 
string extension, Usuario *_usuario, Grupo *_grupo, int _permUsu, int _permGrp, int _permOtros) :
Recurso(nombre, ruta, fecha, _usuario, _grupo, _permUsu, _permGrp, _permOtros),
size(size), extension(extension) {
}

/**@brief Constructor de copia*/
Archivo::Archivo(const Archivo& orig) : Recurso(orig), size(orig.size), extension(orig.extension) {
}

/**@brief Destructor de la clase Archivo
 */
Archivo::~Archivo() {
}

/**@brief Asigna la extensión del archivo
 * @param extension string Extension que se le va a asignar 
 */
void Archivo::SetExtension(string extension) {
    this->extension = extension;
}

/**@brief Devuelve un string con la extension
 * @return string con la extension del archivo
 */
string Archivo::GetExtension() const {
    return extension;
}

/**@brief Asigna el tamaño del archivo
 * @param size float Tamaño que se le va a asignar
 */
void Archivo::SetSize(float size) {
    this->size = size;
}

/**@brief Devuelve un float con el tamaño 
 * @return float con el tamaño del archivo
 */
float Archivo::GetSize() const {
    return size;
}

/*void Archivo::verPermisos(){
    cout<<"                     "<<"User "<<"Group "<<"Other"<<endl;
    cout<<this->GetNombre()<<" "<<this->GetPermUsu()->GetPermisos()<<" "<<this->GetPermGrp()->GetPermisos()<<" "<<this->GetPermOtros()->GetPermisos()<<endl;
}*/
